package com.meituan.sdk.model.ddzh.technician.technicianTechinfoUgcAdd;

import com.meituan.sdk.annotations.ApiMeta;
import java.lang.Void;
import java.util.List;
import com.google.gson.reflect.TypeToken;
import javax.validation.constraints.NotBlank;
import java.lang.reflect.Type;
import com.meituan.sdk.internal.utils.JsonUtil;
import com.google.gson.annotations.SerializedName;
import javax.validation.constraints.NotNull;
import com.meituan.sdk.MeituanResponse;
import com.meituan.sdk.MeituanRequest;
import javax.validation.constraints.NotEmpty;

/**
* （三嫂）手艺人评价信息同步
* This file was automatically generated.
*/
@ApiMeta(
    path = "/ddzh/technician/techUgc/add",
    businessId = 58,
    apiVersion = "10001",
    apiName = "technician_techinfo_ugc_add",
    needAuth = true
)
public class TechnicianTechinfoUgcAddRequest implements MeituanRequest<Void> {
    /**
    * <p data-diff-id="ct-diff-id-fe7a4235-ab1b-4abb-ba36-66b46dc3ed18">数据源来源，熊猫固定传1</p>
    */
    @NotNull(message = "sourceType不能为空")
    @SerializedName("sourceType")
    private Integer sourceType;
    /**
    * <p data-diff-id="ct-diff-id-93c7f470-f305-4d4f-a56b-790a4cd41294">熊猫系统的手艺人id</p>
    */
    @NotNull(message = "sourceTechId不能为空")
    @SerializedName("sourceTechId")
    private Long sourceTechId;
    /**
    * <p data-diff-id="ct-diff-id-e8bcf3f5-4519-4bb8-8459-729944dc05f6">熊猫系统ugc的主键</p>
    */
    @NotBlank(message = "ugcId不能为空")
    @SerializedName("ugcId")
    private String ugcId;
    /**
    * <p data-diff-id="ct-diff-id-0c9e14de-9bed-4d30-91ca-4f2923077b34">类型，<strong>用户评价传1，内部推荐评价传2</strong></p>
    */
    @NotNull(message = "type不能为空")
    @SerializedName("type")
    private Integer type;
    /**
    * <p data-diff-id="ct-diff-id-dac1e9dd-61e9-41b4-9b3f-acb3a95510fb">用户名称</p>
    */
    @NotBlank(message = "userName不能为空")
    @SerializedName("userName")
    private String userName;
    /**
    * <p data-diff-id="ct-diff-id-58e848c6-3428-4266-a0e4-8f05a628b428">ugc添加时间</p>
    */
    @NotNull(message = "addTime不能为空")
    @SerializedName("addTime")
    private Long addTime;
    /**
    * <p data-diff-id="ct-diff-id-bda8afa3-7b9f-43de-8489-0690f1797940">评分</p>
    */
    @NotEmpty(message = "scoreDatas不能为空")
    @SerializedName("scoreDatas")
    private List<BabysisterScoreDTO> scoreDatas;
    /**
    * <p data-diff-id="ct-diff-id-b8bf91fc-3e44-468c-9e81-bcc3ab7c853e">不良警示信息，如假证、偷盗、私涨工资等，例如：["假证","偷盗"]</p>
    */
    @SerializedName("badInfos")
    private List<String> badInfos;
    /**
    * <p data-diff-id="ct-diff-id-8b443803-2da6-4294-9b53-4357d3eee022">评价内容</p>
    */
    @NotBlank(message = "content不能为空")
    @SerializedName("content")
    private String content;
    /**
    * <p data-diff-id="ct-diff-id-23e1fca1-2f71-4e7b-998a-c319b0c0daa6">图片链接</p>
    */
    @SerializedName("picUrls")
    private String picUrls;
    /**
    * <p data-diff-id="ct-diff-id-1ed9128c-0f37-46d5-b69d-db2013ce990d">是否展示在简历</p>
    */
    @NotNull(message = "isShow不能为空")
    @SerializedName("isShow")
    private Boolean isShow;

    public Integer getSourceType() {
        return sourceType;
    }
    public void setSourceType(Integer sourceType) {
        this.sourceType = sourceType;
    }
    public Long getSourceTechId() {
        return sourceTechId;
    }
    public void setSourceTechId(Long sourceTechId) {
        this.sourceTechId = sourceTechId;
    }
    public String getUgcId() {
        return ugcId;
    }
    public void setUgcId(String ugcId) {
        this.ugcId = ugcId;
    }
    public Integer getType() {
        return type;
    }
    public void setType(Integer type) {
        this.type = type;
    }
    public String getUserName() {
        return userName;
    }
    public void setUserName(String userName) {
        this.userName = userName;
    }
    public Long getAddTime() {
        return addTime;
    }
    public void setAddTime(Long addTime) {
        this.addTime = addTime;
    }
    public List<BabysisterScoreDTO> getScoreDatas() {
        return scoreDatas;
    }
    public void setScoreDatas(List<BabysisterScoreDTO> scoreDatas) {
        this.scoreDatas = scoreDatas;
    }
    public List<String> getBadInfos() {
        return badInfos;
    }
    public void setBadInfos(List<String> badInfos) {
        this.badInfos = badInfos;
    }
    public String getContent() {
        return content;
    }
    public void setContent(String content) {
        this.content = content;
    }
    public String getPicUrls() {
        return picUrls;
    }
    public void setPicUrls(String picUrls) {
        this.picUrls = picUrls;
    }
    public Boolean getIsShow() {
        return isShow;
    }
    public void setIsShow(Boolean isShow) {
        this.isShow = isShow;
    }


    @Override
    public MeituanResponse<Void> deserializeResponse(String response) {
        Type type = new TypeToken<MeituanResponse<Void>>(){}.getType();
        return JsonUtil.fromJson(response, type);
    }
    @Override
    public String serializeToJson() {
        return JsonUtil.toJson(this);
    }


    @Override
    public String toString() {
        return "TechnicianTechinfoUgcAddRequest{" + "sourceType=" + sourceType + "," + "sourceTechId=" + sourceTechId + "," + "ugcId=" + ugcId + "," + "type=" + type + "," + "userName=" + userName + "," + "addTime=" + addTime + "," + "scoreDatas=" + scoreDatas + "," + "badInfos=" + badInfos + "," + "content=" + content + "," + "picUrls=" + picUrls + "," + "isShow=" + isShow + "}";
    }
}
